package com.fuze.questionnaire.service;

import com.fuze.questionnaire.domain.entity.BasicUserInformation;

import java.util.Optional;

/**
 * @author sepc_
 * @date 10/20/2021 15:11
 */
public interface UserInfoService {

    /**
     * 处理微信登录，获取微信openid
     *
     * @param code 微信登录code
     * @return openid
     */
    Optional<String> login(String code);

    /**
     * 插入新增的用户信息
     *
     * @param userInformation 用户填写的基本用户信息
     * @return 用户的id
     */
    Integer insertOrUpdate(BasicUserInformation userInformation);

    /**
     * 校验用户是否以及存在
     *
     * @param openid 用户的微信openid
     * @return true-存在 false-不存在
     */
    boolean checkUserExist(String openid);

    /**
     * 根据用户的用户openid获取用户在小程序中的userID
     *
     * @return 用户ID
     */
    Integer getUserId(String openid);

    /**
     * 根据用户的openid查询用户提交的基本信息
     * @param openid 用户的openid
     * @return 用户的基本信息
     */
    BasicUserInformation listUserInfo(String openid);
}
